package com.xtoad.ecms.baseinfo.service;

import com.xtoad.ecms.baseinfo.dto.PageElementDTO;

import java.util.List;

/**
 * 页面元素类Service
 *
 * @author xtoad
 * @date 2021/01/18
 */
public interface IPageElementService {

    /**
     * 根据id查询页面元素类
     *
     * @param id 页面元素类id
     * @return 查询结果
     */
    PageElementDTO getPageElementById(final Long id);

    /**
     * 查询全部页面元素类，不分页
     *
     * @return 查询结果
     */
    List<PageElementDTO> getAllPageElement();

    /**
     * 新增页面元素类
     *
     * @param pageElementDTO 保存对象
     * @return 新增结果
     */
    PageElementDTO insert(final PageElementDTO pageElementDTO);

    /**
     * 删除页面元素类
     *
     * @param id 删除对象id
     */
    void deleteById(final Long id);

    /**
     * 删除页面元素类
     *
     * @param pageElementDTO 删除对象
     */
    void delete(final PageElementDTO pageElementDTO);

    /**
     * 更新页面元素类
     *
     * @param pageElementDTO 更新对象
     * @return 更新结果
     */
    PageElementDTO update(final PageElementDTO pageElementDTO);

    /**
     * 批量新增页面元素类
     *
     * @param pageElementDTOList 新增对象
     * @return 新增结果
     */
    List<PageElementDTO> batchInsert(final List<PageElementDTO> pageElementDTOList);

    /**
     * 批量删除页面元素类
     *
     * @param pageElementDTOList 删除对象
     */
    void batchDelete(final List<PageElementDTO> pageElementDTOList);

    /**
     * 批量更新页面元素类
     *
     * @param pageElementDTOList 更新对象
     * @return 更新结果
     */
    List<PageElementDTO> batchUpdate(final List<PageElementDTO> pageElementDTOList);

}
